var curr="1";
var pageSize="10";
var table;
var layer;
var fileId,fpath;
$(function () {
    sessionStorage.setItem("filePath",sessionStorage.getItem("userId"));
    //获取表格数据
    getAllFilesList(0,10);

})

/**
 * 后台返回数据填充表格 demo
 */
function getAllFilesList(currt,size) {
    layui.use('layer', function () { //独立版的layer无需执行这一句
        var $ = layui.jquery;
        layer = layui.layer; //独立版的layer无需执行这一句
    })
    var obsFile={};
    obsFile.userId=sessionStorage.getItem("id");
    if(sessionStorage.getItem("filePath")!=""){
        obsFile.path=sessionStorage.getItem("filePath")+"/";
    }
    obsFile.fileState=0;
    var page={};
    page.currt=currt;
    page.size=size;
    var obj={};
    obj.obsFile=obsFile;
    obj.page=page;
    $.ajax({
        url: sessionStorage.getItem("rootPath") + "/files/slectRecyclesList",   //需要填入回收站文件的接口
        method: "post",
        dataType: "json",
        contentType: 'application/json;charset=utf-8',
        data: JSON.stringify(obj),
        success: function (res) {
            //登录失效，跳转到登录页面
            if(res.status == -1){
                window.top.location.href = 'login.html';
            }
            renderTable(res);
            renderpage(res);
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            console.log("失败" + XMLHttpRequest.status + ":" + textStatus + ":" + errorThrown);
        }
    })
}

/**
 * 表格渲染
 */
function renderTable(data) {
    layui.use('table', function () {
        table = layui.table;
        table.render({
            elem: '#allFilesTable'
            ,url: '../../admin/data/common.json'
            , page: false
            , height: 350
            ,toolbar: '#toolbar' //开启头部工具栏，并为其绑定左侧模板
            ,defaultToolbar: []
            , parseData: function (res) {
                return {
                    "code": 0,
                    "msg": "",
                    "data": data.data
                }
            }
            , cols: [[
                {field: 'type',width:80,title: '图标', templet:function (data) {
                        if(data.type=="图片"){
                            return '<img src="admin/images/tag_image.png" style="width:30px;"/>';
                        }else if(data.type=="文档"){
                            return '<img src="admin/images/tag_word.png" style="width:30px;"/>';
                        }else if(data.type=="音乐"){
                            return '<img src="admin/images/tag_music.png" style="width:30px;"/>';
                        }else if(data.type=="视频"){
                            return '<img src="admin/images/tag_video.png" style="width:30px;"/>';
                        }else if(data.type=="文件夹"){
                            return '<img src="admin/images/tag_folder.png" style="width:30px;"/>';
                        }else if(data.type=="Word"){
                            return '<img src="admin/images/tag_word.png" style="width:30px;"/>';
                        }else if(data.type=="Pdf"){
                            return '<img src="admin/images/tag_pdf.png" style="width:30px;"/>';
                        } else if(data.type=="Excel"){
                            return '<img src="admin/images/tag_excel.png" style="width:30px;"/>';
                        }else if(data.type=="Ppt"){
                            return '<img src="admin/images/tag_ppt.png" style="width:30px;"/>';
                        }else if(data.type=="其他"){
                            return '<img src="admin/images/tag_other.png" style="width:30px;"/>';
                        }
                    }}
                , {field: 'fileName',title: '文件名',sort:true, templet: function (data) {
                        return data.fileName;
                    }}
                , {field: 'size',title: '文件大小',sort:true, templet: function (data) {
                        if(data.type=="文件夹"){
                            return "--";
                        }else {
                            return data.size;
                        }
                    }}
                , {field: 'deleteTime',title: '删除时间',sort:true, templet: function (data) {
                        if(data.type=="文件夹"){
                            return "--";
                        }else {
                            return data.makeTime;    //此处需要改为删除时间
                        }
                    }}
                , {fixed: 'right',title: '操作',templet:function (data) {
                        var btns = "";
                            btns += ' <a class="layui-btn layui-btn-xs layui-btn-danger" lay-event="delete"><i class="layui-icon layui-icon-delete"></i>删除</a>';
                            btns += ' <a class="layui-btn layui-btn-xs layui-btn-primary" lay-event="recover"><i class="layui-icon layui-icon-refresh"></i>还原</a>';
                        return btns;
                    }}
            ]]
        });

        //监听行工具事件
        table.on('tool(allFilesDemo)', function (obj) {
            var data = obj.data;
            if (obj.event === 'delete'){
                layer.confirm('真的删除该文件/文件夹吗？', function(index){
                    deleteFile(data.fileId,data.path,data.type);
                    obj.del();
                });
            }else if(obj.event === 'recover'){
                 layer.confirm('真的恢复该文件/文件夹吗？', function(index){
                 recoverFile(data.fileId,data.path,data.type);
                });
            }
        });
    });
}

/**
 * 删除文件
 */
function deleteFile(id,path,type) {
    var obsFile = {};
    obsFile.fileId=id;
    obsFile.userId=sessionStorage.getItem("id");
    obsFile.path=path;
    obsFile.type=type;
    $.ajax({
        url: sessionStorage.getItem("rootPath") + "/files/deleteFile",
        data:JSON.stringify(obsFile),
        dataType:'json',
        contentType: 'application/json;charset=utf-8',
        type:'post',
        success:function(res){
            if(res==0){
                layer.msg("该文件夹内含有文件，请先删除文件后重试！",{icon:0,time:1000});
            }else{
                layer.msg("删除文件/文件夹成功！",{icon:1,time:1000});
                getAllFilesList(curr-1,pageSize);
            }
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            layer.msg("删除文件/文件夹失败！" ,{icon:2,time:1000});
            console.log("失败" + XMLHttpRequest.status + ":" + textStatus + ":" + errorThrown);
        }
    })
}

/**
 * 恢复文件
 */
function recoverFile(id) {
    var obsFile = {};
    obsFile.fileId=id;
    obsFile.fileState=1;
    $.ajax({
        url: sessionStorage.getItem("rootPath") + "/files/recycleFile",  //恢复文件的接口
        data:JSON.stringify(obsFile),
        dataType:'json',
        contentType: 'application/json;charset=utf-8',
        type:'post',
        success:function(res){
            if(res==0){
                layer.msg("该文件夹内含有文件，请先删除文件后重试！",{icon:0,time:1000});
            }else{
                layer.msg("恢复成功！",{icon:1,time:1000});
                getAllFilesList(curr-1,pageSize);
            }
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            layer.msg("恢复失败！" ,{icon:2,time:1000});
            console.log("失败" + XMLHttpRequest.status + ":" + textStatus + ":" + errorThrown);
        }
    })
}

/**
 * 分页
 */
function renderpage(date) {
    layui.use('laypage', function () {
        var laypage = layui.laypage;

        //执行一个laypage实例
        laypage.render({
            elem: 'allFilesTable_page' //注意，这里的 test1 是 ID，不用加 # 号
            , layout: ['count', 'prev', 'page', 'next', 'limit', 'skip']
            , count: date.total //数据总数，从服务端得到
            , limits: [10,20, 30]
            , curr: curr
            , limit: pageSize
            , jump: function (obj, first) {
                //首次不执行
                if (!first) {
                    page = obj.curr;
                    pageSize = obj.limit;
                    getAllFilesList(curr-1,pageSize);
                }
            }
        });
    });
}